﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace CObject
{
    public class AbstractTile : CObject
    {
        //Các thông tin chung của đối tượng tile
        private int i_Type;
        private int i_Property;
        private Point location;

        //Bitmap để thể hiện hình ảnh đối tượng
        private Bitmap picture;

        public int I_Type
        {
            get { return i_Type; }
            set { i_Type = value; }
        }

        public int I_Property
        {
            get { return i_Property; }
            set { i_Property = value; }
        }

        public Bitmap Picture
        {
            get { return picture; }
            set { picture = value; }
        }

        public Point Location
        {
            get { return location; }
            set { location = value; }
        }

        public void ChangeLocation(int x, int y)
        {
            this.Location = new Point(x, y);
        }

        public Point GetLocation()
        {
            return this.Location;
        }

        public virtual int GetWidth()
        {
            return this.Picture.Width;
        }

        public virtual int GetHeight()
        {
            return this.Picture.Height;
        }

        //các phương thức cần viết lại (override)
        virtual public void Init() { }

        virtual public AbstractTile Clone() 
        {
            return this.MemberwiseClone() as AbstractTile;
        }
    }
}